package com.cy.dda.dao.mapper.user;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.cy.dda.model.domain.user.User;
import com.cy.dda.model.dto.user.UserLoginDTO;
import com.cy.dda.model.query.user.DistributableUserListQuery;
import com.cy.dda.model.query.user.UserListAdminQuery;
import com.cy.dda.model.vo.user.DistributableUserListVO;
import com.cy.dda.model.vo.user.UserIndexInfoVO;
import com.cy.dda.model.vo.user.UserListAdminVO;

import tk.mybatis.mapper.common.BaseMapper;

/**
 * user
 *
 * @author: tanyilin
 * @create: 2018年10月31日 下午1:48:23
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

	/**
	 * 用户登录信息
	 * 
	 * @param mobile
	 * @param password
	 * @return
	 */
	UserLoginDTO login(@Param("mobile") String mobile, @Param("password") String password);
	
	/**
	 * 后台查询用户列表总数
	 * 
	 * @param query
	 * @return
	 */
	int selectUserListAdminCount(UserListAdminQuery query);
	
	/**
	 * 后台查询用户列表
	 * 
	 * @param query
	 * @return
	 */
	List<UserListAdminVO> selectUserListAdmin(UserListAdminQuery query);
	
	/**
	 * 查询前台用户首页信息字段
	 * 
	 * @param userId
	 * @return
	 */
	UserIndexInfoVO selectUserIndexInfoVO(@Param("userId") Long userId);

	/**
	 * 查询可分配的用户列表数量
	 * 
	 * @param query
	 * @return
	 */
	int selectDistributableUserListCount(DistributableUserListQuery query);
	
	/**
	 * 查询可分配的用户列表信息
	 * 
	 * @param query
	 * @return
	 */
	List<DistributableUserListVO> selectDistributableUserList(DistributableUserListQuery query);
}
